Refining rely-guarantee thinking
نویسندگان
چکیده
Reasoning about concurrent programs can be very difficult due to the possibility of interference. The fundamental insight of Rely-Guarantee thinking is that developing concurrent designs can only be made compositional if the development method offers ways to record and reason about the interference that is inherent in concurrency. The original presentation of rely-guarantee rules used keywords to mark the various predicates and even the read/write frames of operations. Subsequent papers have moved to a more general message of “rely-guarantee thinking” but retained this VDM flavour and have typically presented a development style in terms of inference rules based on Hoare-like triples, extended to quintuples to accommodate rely and guarantee conditions. Morgan’s refinement calculus presents concise rules that lend themselves to algebraic arguments. This paper reports on a complete reformulation of the key ideas of rely-guarantee reasoning in a refinement calculus style. As is shown, this indicates new useful and intuitive manipulations of rely/guarantee specifications. The approach makes use of two new commands: a guarantee command (guar g _ c) that behaves like the command c but also guarantees every atomic step satisfies the relation g, and a rely command (rely r _ c) that behaves like c provided any interference steps from the environment satisfy the relation r or stutter. Further notational developments result from the use of a more compact notation to indicate the read/write frame of a command. The new rules are justified with respect to an operational semantics presented in the Colvin style. © 2012 Newcastle University. Printed and published by Newcastle University, Computing Science, Claremont Tower, Claremont Road, Newcastle upon Tyne, NE1 7RU, England. Bibliographical details HAYES, I.J., JONES, C.B., COLVIN, R.J. Refining rely-guarantee thinking [By] I.J. Hayes, C.B. Jones, R.J. Colvin Newcastle upon Tyne: Newcastle University: Computing Science, 2012. (Newcastle University, Computing Science, Technical Report Series, No. CS-TR-1334)
منابع مشابه
Reasoning about concurrent programs : Refining rely - guarantee thinking
Interference is the essence of concurrency and it is what makes reasoning about concurrent programs difficult. The fundamental insight of rely-guarantee thinking is that stepwise design of concurrent programs can only be compositional in development methods that offer ways to record and reason about interference. In this way of thinking, a rely relation records assumptions about the behaviour o...
متن کاملThe Re-entrance Problem and Its Solution
In this paper we take a formal look at the nature of the re-entrance problem. We see the essence of the problem in a conflict between the assumptions components make about each other’s behavior. We argue that to ensure safe composability of mutually dependent components in an open system one needs to reason about them modularly. We propose an approach for extending component specifications with...
متن کاملOn Compositionality in Refining Concurrent Systems
Three different styles of refinement of concurrent systems are investigated. The methods differ in their degree of compositionality. The traditional method considers the refinement of complete systems, and therefore is totally noncompositional. The middle level one is called a modular method, with which one first verifies refinement of each component and then checks that the refinements are com...
متن کاملRely-Guarantee References for Refinement Types
Reasoning about side effects and aliasing is the heart of verifyingimperative programs. Unrestricted side effects through one refer-ence can invalidate assumptions about an alias. We present a newtype system approach to reasoning about safe assumptions in thepresence of aliasing and side effects, unifying ideas from referenceimmutability type systems and rely-guarantee progr...
متن کاملIntuitive and logical way of thinking in the education of architectural design courses
Different approaches and methods are used in the architecture design process that logical and intuitional methods are the most common ones. The role of knowledge in each method is different. Investigating aspects of knowledge demonstrated the hierarchy from data to wisdom and the interaction of explicit and tacit types, subjective and objective sources, and analytical and exploratory ways of p...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012